package com.java.xiaoBao;

public class Node {

    //坐标
    int x, y;
    //定义4个方面（上下左右）
    boolean left = false, right = false, up = false, down = false;

    //构造方法
    Node(int x, int y){
        this.x = x;
        this.y = y;
    }

    /**
     * 如果向右走，（则y坐标+1）
     */
    boolean isRight(){
        //如果y坐标的值 小于 二维数组的列
        if(y<Matrix.col -1) {
            //返回，继续向右走
            return (Matrix.matrix[x][y+1] == 0);
        }
        right = true;
        return false;
    }

    /**
     * 如果向左走，（则y坐标-1）
     */
    boolean isLeft(){
        //如果y坐标的值 大于等于 1
        if(y>=1) {
            return (Matrix.matrix[x][y-1]==0);
        }
        left = true;
        return false;
    }

    /**
     * 如果是向上走（则x坐标-1）
     */
    boolean isUp(){
        //如果x坐标的值 大于等于 1
        if(x>=1) {
            return (Matrix.matrix[x-1][y] == 0);
        }
        up = true;
        return false;
    }

    /**
     * 如果是向下走（则x坐标+1）
     */
    boolean isDown(){
        if(x<Matrix.row-1) {
            return (Matrix.matrix[x+1][y]==0);
        }
        down = true;
        return false;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Node other = (Node) obj;
        return (x==other.x && y==other.y);
    }

    //重写toString，输入坐标值
    public String toString(){
        return "["+x+","+y+"]";
    }
}
